Methods and apparatus for translating messages in a computing system

ABSTRACT

Methods and apparatus for translating messages in a computing system are disclosed. In particular, a disclosed method for converting messages in a computer system includes receiving a command message from a processing unit where the message is defined according to a transport protocol that utilizes command messages using an address to communicate commands to devices in the computer system. The command message is translated to an interface standard by mapping the address into an address field of a packet constructed according to the interface standard. Corresponding apparatus that perform the methods are also disclosed.

FIELD OF THE INVENTION

The present disclosure relates to methods and apparatus used to translate messages within a computing system and, more particularly for translating messages formatted according to one protocol in order to transmit those messages according to a second protocol.

BACKGROUND OF THE INVENTION

In certain types of computing systems that include a central processing unit (CPU) and a host bridge or what is known as a “Northbridge,” such devices are connected by an interface using a particular protocol in order for the CPU and Northbridge to communicate. One such protocol known in the art is HyperTransport™, which provides a high speed, point-to-point link for interconnecting integrated circuits within a computing system. Typically, however, Northbridge circuits communicate with other devices in the system, such as input-output bridges (e.g., a “Southbridge”) according to different protocols, including PCI Express. Accordingly, when a CPU is trying to communicate with a Southbridge via the Northbridge and the CPU communicates with the Northbridge via HyperTransport™ protocol and the Northbridge, in turn, communicates with the Southbridge via PCI Express protocol, not all message types or formats are easily passed through the Northbridge to communicate the commands or requests from the CPU to the Southbridge.

Types of messages in HyperTransport™ protocol that do not easily pass through the Northbridge, as an example, are what are termed “Broadcast” messages, which simply provide a memory address, but no data field in order to communicate different and various commands to the Southbridge. This is problematic in some types of Northbridges that are configured to communicate commands via PCI Express to the Southbridge using a different packet construction including a data field, for example. Thus, it becomes necessary to convert these Broadcast messages of HyperTransport™, as an example, to a format usable and recognizable by the communication link between the Northbridge and Southbridge in order to ensure simplification of the system, as well as avoiding, for example, further connections of the interface between the Northbridge and Southbridge such as using a different communication link to accommodate the non-compatible messages.

It is noted that the following documents are known in the art concerning HyperTransport™ technology and PCI and their functioning. The following documents are incorporated herein by reference:

1) “HyperTransport™ I/O Link Specification, Revision 1.05c”; Document #HTC2002104-0005-0005; Aug. 5, 2003; HyperTransport Technology Consortium.

2) “HyperTransport™ I/O Link Errata, Revision 1.05b”; Document #HTC200335-0024-0003; Apr. 2, 2003, HyperTransport Technology Consortium.

3) “Advanced Configuration and Power Interface Specification, Revision 2.0b;” Oct. 11, 2002; Compaq Computer Corporation, Intel Corporation, Microsoft Corporation, Phoenix Technologies Ltd., and Toshiba Corporation.

4) “AMD-8151™ HyperTransport™ AGP3.0 Graphics Tunnel Data Sheet;” 24888 Rev 3.03—Jul. 12, 2004; Advanced Micro Devices, Inc.

5) “Clock Generator Specification for AMD64 Processors;” Publication # 24707 Revision: 3.08; September 2003; Advanced Micro Devices, Inc.

6) “HyperTransport™ Technology I/O Link—A High-Bandwidth I/O Architecture;” Jul. 20, 2001; Advanced Micro Devices, Inc.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example of a computing system in accordance with the present disclosure.

FIG. 2 illustrates an address map utilized in an exemplary protocol such as HyperTransport™ technology.

FIG. 3 illustrates an example of a packet format for a Broadcast message performing system management as assembled by a Northbridge for transmission by a PCI Express in accordance with the present disclosure.

FIG. 4 illustrates an example of a packet frame format for an end of interrupt Broadcast message as assembled for PCI Express according to the present disclosure.

FIG. 5 illustrates an exemplary flow diagram of a method for translating messages in accordance with the present disclosure.

DETAILED DESCRIPTION OF THE PRESENT EMBODIMENTS

The present disclosure relates to methods and apparatus for translating messages in a computing system. In particular, a disclosed method for converting messages in a computer system includes receiving a command message from a processing unit where the message is defined according to a transport protocol that utilizes command messages using an address to communicate commands to devices in the computer system. The command message is translated to a message defined by a different transport protocol by mapping the address into an address field of a packet constructed according to the different transport protocol.

A disclosed apparatus for converting messages is also disclosed, which includes a bridge circuit configured to convert messages received from at least one processor. The bridge circuit includes logic configured to receive a command message from at least one processor where the message is defined according a transport protocol that utilizes command messages using an address to communicate commands to devices in the computer system. The logic is also configured to then translate the command message to a message defined by a different transport protocol by mapping the address into an address field of a packet constructed according to the different transport protocol.

In computer systems employing a transfer protocol utilizing command messages using an address to communicate commands, such as HyperTransport™, between a central processing unit (CPU) and a Northbridge and also utilizing a message defined by a different transport protocol , such as PCI Express for interconnecting a Northbridge to a Southbridge, the presently-disclosed methods and apparatus afford a simplified methodology or apparatus to communicate messages from the CPU to the Southbridge. Additionally, translation allows an existing PCI Express bus path to be utilized instead of a different communication link.

FIG. 1 illustrates an example of a computer system 100 in which the presently-disclosed apparatus and methods may be utilized. As shown, the system 100 includes a processor 102, which may be a central processing unit (CPU), multiple processors, or any other similar processing unit. The processor 102 is interfaced to a bridge circuit, such as a memory interface bridge, host bridge, or a Northbridge 104 via an interface 106. In particular, for purposes of example, this interface 106 operates according to the HyperTransport™ protocol, but may be any other suitable interface in which some requests utilize a memory address without data in order to communicate certain commands. The system 100 also may include a system memory 108 connected directly to the processor 102 with an interface 110, such as an interface operating according to PCI Express, PCI, AGP or any other suitable interface standard.

The Northbridge circuit 104 is also connected to a memory 112, which may be a system memory and also may include graphics memory or simply the graphics memory utilized by a graphics processing unit 116 connected to the Northbridge 104 or graphics processing circuitry 118 internal to the Northbridge circuit 104. The memory 112 is interfaced with the Northbridge 104 via an interface 114, which may operate according to DDR1/DDR2 or any other suitable standard for interfacing with memory. Additionally, the graphics processing unit 116 is interfaced by an interface 120 with the Northbridge circuit 104 and also may operate according to any suitable standard, such as PCI, PCI Express or AGP. The graphics processing unit 116 may drive a display media 122, such as a monitor, printer, or any other suitable display device 122 via an analog bus 124.

The Northbridge circuit 104, as shown in FIG. 1 also interfaces with a Southbridge circuit, which may be used to interface with any one of numerous types of devices, such as keyboards, mouse devices, hard drives, floppy drives, USB devices, ROMs and PCI bus cards. The Northbridge 104 and Southbridge 126 are interfaced with an interface 128, which may operate according to any suitable standard. For purposes of the present disclosure, the interface 128 operates according to PCI Express or any other suitable equivalent interface protocol.

Particular to the presently disclosed methods and apparatus, the Northbridge circuit 104 includes translation logic 132 that is used to translate or correlate between requests and messages from the CPU 102 via interface 106 operating according to HyperTransport™ protocol and the interface 128 between the Northbridge 104 and Southbridge 126 operating according to PCI Express, for example. Furthermore, the Southbridge circuit 126 includes translated command message interpretation logic 134 that is used, for example, to interpret the translated command message from the CPU, which have been translated by the translation logic 132 in the Northbridge circuit 104. The translated command interpretation logic 134 may be located in any suitable location and in this example is shown in the Southbridge 126. The translated command message interpretation logic 134 uses the address in the received translated command and compares the address to an address map of the other transport protocol (e.g., Hypertransport™) to determine if the packet includes a translated command message and, if so, the type of command message. For example if the address is in a certain range, the interpretation logic 134 determines the type of command message (e.g., broadcast message) that was translated by the translation logic 132. Any other suitable interpretation scheme may also be used. The system 100 includes both translation logic and corresponding translated command message interpretation logic.

FIG. 2 illustrates an address map 200 which is utilized by the HyperTransport™ protocol. As shown in this figure, ranges from a base address to a top address for particular messages are illustrated. Of particular interest are what are known as “Broadcast” messages utilized by HyperTransport™. These Broadcast messages are used to send commands or messages globally throughout a computing system, such as system 100 illustrated in FIG. 1. Different types of Broadcast messages used in the HyperTransport™ protocol include Interrupt/End of Interrupt (EOI) and System Management messages. As illustrated in FIG. 2, interrupt/EOI messages 202 utilize addresses between a base address 204 and a top address 206 and System Management messages 208 utilize addresses between a base address 210 and a top address 212. In particular, HyperTransport™ technology utilizes a generic message-based interrupt system. The information carried in these messages is implementation specific. The address range is used to send interrupt requests/acknowledgements between an interrupting device (e.g., CPU 102) and a bridge (e.g., Southbridge 126). The interrupt requests, in particular, are sent from the CPU 102 and the acknowledgements are sent back from the bridge (e.g., Southbridge 126) in response. In Broadcast message packets, in particular, Broadcast messages, having these reserved address ranges associated with them, are recognized by all HyperTransport™ enabled devices, such as Northbridge circuit 104 in the example of FIG. 1. All information, including potential write data, necessary to the specific type of operation dictated by the command associated with the transmitted address that is to be performed is carried in the address field and not as separate data.

As discussed previously, Broadcast messages received in the Northbridge circuit 104 from the CPU 102, which need to be passed on to the Southbridge circuit 126 become problematic when these messages need to be transmitted using some other protocol, such as PCI Express. Accordingly, the present disclosure teaches a method and apparatus to translate the Broadcast messages of HyperTransport™ protocol to PCI Express in order to be understood or identified by the Southbridge 126 and executed. Thus, the translation logic 132 is specifically configured to receive the Broadcast messages and, in particular, map the particular address of the Broadcast message into an address field of a packet constructed according to PCI Express for transmission via the interface 128 to the Southbridge 126. Examples of such mapped packets are illustrated in FIGS. 3 and 4.

The Southbridge includes circuitry as known in the art to receive the transmission from the Northbridge which contains the translated command and to obtain the broadcast message information from the address field of the packet. As such, a system is disclosed which generates the translated command, receives the translated command and further processes the translated command. It will also be recognized that the command may be sent to any suitable device as desired.

FIG. 3, in particular, illustrates a PCI Express packet that is used to transmit a System Management type Broadcast message. In particular, the packet 300 includes various header data as is known in the PCI Express standard specification, such as detailed in section 2.2 of Rev. 1.1 of the PCI Express specification. Additionally, the address information, which denotes the particular system management message, is mapped into an address field 302 of the PCI Express packet 300.

The packet 300, in particular, is constructed with a double word (dword) memory write command that is recognizable by PCI Express and is comprised of 32 bits, as is well known in the art as the defining characteristic of a dword. Thus, the address field 302 is comprised of 64 bits of information including the 32 dword bits, where the first word or first 16 bits includes the first 16 bits of the HyperTransport™ Broadcast message address (e.g., F91x). The next 8 bits includes the system management command portion of the address 304 and the last 8 bits 306 includes the last 8 bits of the HyperTransport™ Broadcast message address. Alternatively, the data bits 31 through 8 of the double word may be zeroed and the command type in the payload of the Broadcast message is copied to bits 7 through 0 of the double word 300.

Additionally, it is noted that the System Management messages, in particular, may include what is known as “a special cycle.” The special cycles may include, as examples, Stop Grant messages, Halt messages, Shutdown messages, and Interrupt messages, which are used for, among other things, power and resource control in a computer system as defined by the HyperTransport™ protocol. These messages each have a particular address, which is within the range of addresses assigned for Broadcast messages as shown in FIG. 2.

FIG. 4 illustrates a packet format for End of Interrupt (EOI) type of Broadcast messages. In particular, the packet 400, similar to the packet of FIG. 3, includes an address field 402 into which the address of the EOI type of Broadcast message is mapped for transmission over the PCI Express interface 128.

It is also noted that the translation logic 132, which is used to perform the above-described translation, may be comprised of hardware, firmware or software. In the case of firmware or software, logic 132 may be executable instructions stored in a memory, such as memory 108 or memory 112 (or a memory within the Northbridge circuit 104), or a combination of a number of different memories in computer system 100 such that when processed by the one or more processors (e.g., CPU 102, Northbridge circuit 104, Southbridge 126 or any combination of processing devices) will perform the translation.

FIG. 5 illustrates a flow diagram of the process by which HyperTransport™ Broadcast messages are translated when, for example, Broadcast messages are issued by the CPU 102 to the rest of the system 100 and, in particular, Southbridge circuit 126 via the Northbridge circuit 104. As illustrated, the process 500 initializes at block 502, and then proceeds to block 504. At block 504, the Broadcast command message is received from a processing unit (e.g., CPU 102). In particular, referring to FIG. 1, the Northbridge 104 receives a Broadcast message according to HyperTransport™ protocol over the interface 106. This process is, in particular, performed by the translation logic 132 within the Northbridge circuit 104. Next, logic 132 then maps the address of the particular Broadcast message into an address field of a packet constructed according to PCI Express as illustrated in block 506. As an example, logic 132 constructs a dword having 32 bits where bits 31 through 8 are zeroed and the address of the Broadcast message, which indicates the type of command, into bits 7 through 0 of the dword.

The PCI Express packet, which is a dword memory write request, is then transmitted as indicated in block 508 to the Southbridge circuit 126 via interface 128 under control of the Northbridge circuit 104 and, in particular, translation logic 132. Once the message is transmitted, the process ends as indicated at block 510.

According to the foregoing description, in computer systems employing a transfer protocol utilizing command messages using an address to communicate commands, such as HyperTransport™, between a central processing unit (CPU) and a Northbridge and also utilizing an interface standard, such as PCI Express for interconnecting a Northbridge to a Southbridge, the presently-disclosed methods and apparatus afford a simplified methodology or apparatus to communicate messages from the CPU to the Southbridge. Additionally, translation allows an existing PCI Express bus path to be utilized instead of a different path.

The above detailed description of the examples described herein have been presented for the purposes of illustration and description only and not by limitation. It is therefore contemplated that the present application cover any and all modifications, variations or equivalents that fall within the spirit and scope of the basic underlying principles disclosed above and the appended claims. 

1. A method for converting messages in a computer system comprising: receiving a command message from a processing unit, the message defined according to first transport protocol that utilizes command messages using an address to communicate commands to devices in the computer system; and translating the command message to a message defined by a different transport protocol by mapping the address into an address field of a packet constructed according to the different transport protocol.
 2. The method as defined in claim 1, wherein the address field in the packet is a double word memory write command recognizable by a device using the different transport protocol.
 3. The method as defined in claim 2, wherein translating the command message further comprises: zeroing data bits 31 through 8 of the double word; and copying a message type of the command message and payload (address 15:8) into bits 7 through 0 of the double word.
 4. The method as defined in claim 1, wherein the transport protocol is HyperTransport™.
 5. The method as defined in claim 1, wherein the command is a Broadcast command used in HyperTransport™.
 6. The method as defined in claim 5, wherein the Broadcast command comprises one of a system message and an end of interrupt message (EOI).
 7. The method as defined in claim 6, wherein the system message includes a special cycle.
 8. The method as defined in claim 7, wherein the special cycle includes one of a Stop Grant message, a Halt message, and Shutdown message defined by the HyperTransport™ protocol.
 9. The method as defined in claim 1, wherein the different transport protocol is PCI Express.
 10. The method as defined in claim 1, wherein the processing unit is a central processing unit, and the steps of receiving and translation are performed in a Northbridge circuit.
 11. A bridge circuit configured to convert messages received from at least one processor, the bridge circuit comprising: logic configured to: translate a command message from a processing unit, the message defined according to transport protocol that utilizes command messages using an address to communicate commands to devices by mapping the address into an address field of a packet constructed according to the different transport protocol; and send the translated command message to a device.
 12. The circuit as defined in claim 11, wherein the address field in the packet is a double word memory write command recognizable by the different transport protocol.
 13. The circuit as defined in claim 12, wherein the logic is further configured to translate the command message by including: zeroing data bits 31 through 8 of the double word; and copying the command-type and payload (address 15:8) into bits 7 through 0 of the double word.
 14. The circuit as defined in claim 11, wherein the transport protocol is HyperTransport™.
 15. The circuit as defined in claim 10, wherein the command is a Broadcast command according to HyperTransport™ protocol.
 16. The circuit as defined in claim 15, wherein the Broadcast command comprises one of a system message and an end of interrupt message (EOI).
 17. The circuit as defined in claim 16, wherein the system message includes a special cycle.
 18. The circuit as defined in claim 17, wherein the special cycle includes one of a Stop Grant message, a Halt message, and Shutdown message defined by the HyperTransport™ protocol.
 19. The circuit as defined in claim 11, wherein the different transport protocol is PCI Express.
 20. The circuit as defined in claim 11, wherein the processing unit is a central processing unit, and the bridge circuit is a Northbridge circuit.
 21. A storage medium comprising: memory containing executable instructions such that when processed by one or more processors causes at least one processor to: receive a command message from a processing unit, the message defined according to transport protocol that utilizes command messages using an address to communicate commands to devices in the computer system; and translate the command message to a message defined by a different transport protocol by mapping the address into an address field of a packet constructed according to the different transport protocol.
 22. The storage medium as defined in claim 21, wherein the address field in the packet is a double word memory write command recognizable by the interface standard.
 23. The storage medium as defined in claim 22, wherein translating the command message further comprises: zeroing data bits 31 through 8 of the double word; and copying a message type of the command message and payload (address 15:8) into bits 7 through 0 of the double word.
 24. The storage medium as defined in claim 21, wherein the transport protocol is HyperTransport™.
 25. The storage medium as defined in claim 21, wherein the command is a Broadcast command used in HyperTransport™.
 26. The storage medium as defined in claim 25, wherein the Broadcast command comprises one of a system message and an end of interrupt message (EOI).
 27. The storage medium as defined in claim 25, wherein the system message includes a special cycle.
 28. The storage medium as defined in claim 27, wherein the special cycle includes one of a Stop Grant message, a Halt message, and Shutdown message defined by the HyperTransport™ protocol.
 29. The storage medium as defined in claim 21, wherein the interface standard is PCI Express.
 30. The storage medium as defined in claim 21 wherein the processing unit is a central processing unit, and the steps of receiving and translation are performed in a Northbridge circuit.
 31. A bridge circuit comprising: logic configured to interpret a command message that has been translated from a command message sent from a processing unit, wherein the message was defined according to a transport protocol that utilizes command messages using an address to communicate commands to devices, and wherein the translated command includes data representing a translation of the command message to a different transport protocol by mapping the address into an address field of a packet constructed according to the different transport protocol.
 32. A system comprising: logic configured to: translate a command message from a processing unit, the message defined according to transport protocol that utilizes command messages using an address to communicate commands to devices by mapping the address into an address field of a packet constructed according to the different transport protocol; send the translated command message; and logic configured to interpret the command message that has been translated from a command message sent from a processing unit. 